As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
Likewise, individuals and businesses seek additional ways to protect or secure information, so as to improve, for example, reliability, fault tolerance, or accessibility of that information. One such method of protecting information in an information handling system involves replicating or sharing information so as to ensure consistency between redundant resources, such as data storage devices, including but not limited to, disk drives, solid state drives, tape drives, etc. Replication of information, or data, is possible across various components communicatively coupled through a computer network, so the data storage devices may be, and often desirably are, located in physically distant locations. One purpose of data replication, particularly remote data replication, is to prevent damage from failures or disasters that may occur in one location, and/or in case such events do occur, improve the ability to recover the data.
During conventional replication processes, when data gets transmitted from an originating or source site to a destination site, the data is typically, and should be, confirmed as received. Furthermore, during transmission, such data is also often confirmed as accurate, so as to verify the data had been transmitted and received successfully. In this regard, various checks may be used to confirm successful transmission of the data, including for example, cyclic redundancy checks (CRCs), which are specifically designed to protect against common types of errors during communication, and can provide quick and reasonable assurance of the integrity of any messages transmitted.
After transmission, however, the data at one of the locations may become invalid (e.g., incorrect) over time for any number of explainable or unexplainable reasons. One manner by which it can be confirmed that data from a first site is consistent with data at a second site is to resend the data from one of the sites to the other and verify the data matches that stored in the other site or simply rewrite the data at the other site. However, this can obviously put a significant strain on the available network bandwidth between the two sites, which may otherwise be used for other communication between the sites, such as initial replication. The demand on bandwidth may be further compounded where there are numerous data storage sites scattered over various remote locations, each attempting to confirm validity of its data.
Accordingly, what is needed are better systems and methods for confirming data consistency in a data storage environment that overcome the disadvantages of conventional methods for data confirmation. Particularly, what is needed are systems and methods for efficiently confirming data consistency between two or more network connected data storage sites in a data storage subsystem or information handling system, without, for example, consuming too significant amount of network bandwidth between the data sites, which may otherwise desirably be reserved for other communication between the systems. Such systems and methods could be particularly useful with, but are not limited to use in, systems with relatively slower network links or connections.